public interface Lista<E>{
    
        public int size();
        //regresa numero de elementos

        public boolean isEmpty();
        //verdadero si la lista esta vacia

        public void clear();
        //vacia la lista

        public void addFirst(E value);
        //agrega un dato al inicio de la lista

        public void addLast(E value);
        //agrega un dato al final de la lista

        public E getFirst();
        //regresa el primer valor

        public E removeFirst();
        //elimina el primer valor de la lista

        public E removeLast();
        //elimina el ultimo valor de la lista

        public E remove(E value);
        // elimina determinado valor de la lista

        public void add(E value);
        // agrega valor a una posision definida

        public E remove();
        //elimina el ultimo valor

        public E get();
        // regresa el ultimo valor

        public boolean contains(E value);
        //regresa verdadero si la lista tiene un valor igual al buscado

        public E get(int i);
        //regresa objeto en determinada posision

        public E set(int i, E o);
        // cambia un valor dentro de la lista y regresa el valor origgunal

        public E remove(int i);
        //elimina un valor de un lugar determinado
    
          public int indexOf(E value);
   // pre: value is not null
   // post: returns (0-origin) index of value,
   // or -1 if value is not found
}
